﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using vensoft.BussinesLogic;
using vensoft.Entities;

namespace vensoft.Win32
{
    public partial class frmIngresoProdAlmacen : Form
    {
        IAlmacenBL almacenBL;
        private Almacen current;

        public frmIngresoProdAlmacen()
        {
            InitializeComponent();
        }

        public Int32 estadoBotones { get; set; }     

        private void txtBuscarAlmacen_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (estadoBotones == 0)
                {
                    almacenBL = new AlmacenBL();
                    almacenBindingSource.DataSource = almacenBL.RetornarAlmacenesOrigen(cod_alm,txtBuscarAlmacen.Text);
                }
                else
                {
                    almacenBL = new AlmacenBL();
                    almacenBindingSource.DataSource = almacenBL.GetFromCategoriaByUbic(txtBuscarAlmacen.Text);
                }
            }
        }

        public Int32 cod_alm { get; set; }

        private void frmIngresoProdAlmacen_Load(object sender, EventArgs e)
        {
            almacenBL = new AlmacenBL();
            if (estadoBotones == 0)
            {
                almacenBindingSource.DataSource = almacenBL.GetAllFromAlmacenByCodigo(cod_alm);
                btnSeleccionar.Visible = true;
                btnAgregarProd.Visible = false;
                
                rdbAltaBajaStock.Visible = false;
                rdbPedProveedor.Visible = false;
                rdbTransferencia.Visible = false;
                rdbVerProductos.Visible = false;
                
            }
            else
            {
                almacenBindingSource.DataSource = almacenBL.GetAllFromAlmacen();
                btnSeleccionar.Visible = false;
                btnAgregarProd.Visible = true;
                
                rdbAltaBajaStock.Visible = true;
                rdbPedProveedor.Visible = true;
                rdbTransferencia.Visible = true;
                rdbVerProductos.Visible = true;
                
            }
            
            rdbAltaBajaStock.Checked = true;           
           
        }

        public List<Usuario> UsuarioActual { get; set; }

        private void btnAgregarProd_Click(object sender, EventArgs e)
        {
            if (rdbTransferencia.Checked == true)
            {               
                frmAlmacenPorTransferencia almtrans = new frmAlmacenPorTransferencia();
                almtrans.CurrentAlmacen = almacenBindingSource.Current as Almacen;
                almtrans.Llamar();
                almtrans.UsuarioActual = UsuarioActual;
                almtrans.ShowDialog();
            }
            else if (rdbVerProductos.Checked == true)
            {
                frmVerProdPorAlmacen prod = new frmVerProdPorAlmacen();
                Current = almacenBindingSource.Current as Almacen;                
                prod.codigo = Current.ID_Almacen;                
                prod.ShowDialog();
            }
            else if (rdbAltaBajaStock.Checked == true)
            {
                frmDarAltaBajaStock abstock = new frmDarAltaBajaStock();
                abstock.CurrentAlmacen = almacenBindingSource.Current as Almacen;
                abstock.Llamar();
                abstock.UsuarioActual = UsuarioActual;
                abstock.ShowDialog();
            }
            else if (rdbPedProveedor.Checked == true)
            {
                frmIngresarPedidoAlmacen pedido = new frmIngresarPedidoAlmacen();
                pedido.CurrentAlmacen = almacenBindingSource.Current as Almacen;
                pedido.Llamar();
                pedido.UsuarioActual = UsuarioActual;
                pedido.ShowDialog();
            }
        }

        public Almacen Current
        {
            get { return current; }
            set { current = value; }
        }

        public Almacen CurrentAlmacen { get; set; }

        private void GetCurrent()
        {
            Almacen selected = (Almacen)almacenBindingSource.Current;

            if (selected != null)
            {
                Current = selected;
            }
        }

        private void btnSeleccionar_Click(object sender, EventArgs e)
        {
            CurrentAlmacen = almacenBindingSource.Current as Almacen;
            GetCurrent();
            Close();
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Estas seguro que deseas salir?", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Close();
            }
        }

        private void btnActualizarDatos_Click(object sender, EventArgs e)
        {
            almacenBL = new AlmacenBL();
            if (estadoBotones == 0)
            {
                almacenBindingSource.DataSource = almacenBL.GetAllFromAlmacenByCodigo(cod_alm);               

            }
            else
            {
                almacenBindingSource.DataSource = almacenBL.GetAllFromAlmacen();                

            }
        }

    }
}
